package com.fpd.model.entity;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fpd.enums.AddressResultEnum;
import com.fpd.tools.AgeUtil;
import lombok.Data;

/**
 * @desc 客户基础信息
 * @author Monster
 */
@Data
@TableName(value = "customer_base_info")
public class CustomerBaseInfo extends BaseEntity{
	private String entrustId;//委托方Id
	private String entityNo;//客户编号
	private String dataTime;//数据产生时间
	private String custNo;//客户号
	private String custName;//客户名称
	private String custIdNumber;//客户身份证
	private String phoneNumber;//手机号码
	private int age;//年龄
	private String custSex;//性别（0：男；1：女；2：保密）
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date birthday;//生日
	private String email;//电子邮箱
	private Date beginTime;//委案开始时间
	private Date endTime;//委案结束时间
	private int yuqiDay;//逾期天数
	private int contractCount;//合同数量
	private BigDecimal yuqiAmount;//逾期金额
	private String registerAddress;//户籍地址
	private String liveAddress;//居住地址
	private String unitAddress;//单位地址
	private String unitName;//单位名称
	private String unitPhone;//单位电话
	private String otherAddress;//其他地址
	private String registerProvince;//户籍地址的省
	private String registerCity;//户籍地址的市
	private String liveProvince;//居住地址的省
	private String liveCity;//居住地址的市
	private String unitProvince;//单位地址的省
	private String unitCity;//居住地址的市
	private String editAddress;//户籍地址修复状态
	private String editAddress2;//居住地址修复状态
	private String editAddress3;//单位地址修复状态
	private String editAddress4;//其他地址修复状态
	private String registerAddress2;//修复后的户籍地址
	private String liveAddress2;//修复后的居住地址
	private String unitAddress2;//修复后的单位地址
	private String otherAddress2;//修复后的其他地址
	private String fpStatus;// 案件以客户纬度分案，0表示未分案，1表示分案
	private String gsStatus;// 0表示未归属，1表示已归属 客户分配之后,变成归属。组长取消之后变成已分配未归属
	private int status;//客户状态
	private String  isRepent;//重复委案0:不重复 1：重复委案
	private String isGz;//是否是共债 0:不共债 1：共债
	private int sendLawyerState;//客户发函状态 0未发函  1已发函
	private int leaveCount;//留案次数
	private int leaveState;//留案状态
	private String leaveDesc;//留案备注
	private Date leaveDate;//留案时间
	private String custLetterType; //客户函件分类
	private BigDecimal score; //征信评分
	private String sxType; //失信分类
	private String innerRecover; // 是否内部收回 0否 1是 默认否
	private String innerLeave;//是否内部留案 0否 1是 默认否
	private int caseState;// 客户状态（1：待催收；2：已发律师函未来访；3：已来访；4：已跟进；8：无法发函；）
	private int infoCheck;//信息核对(0:未核对 1：已核对)
	private int position;//排序
	private String lsStatus;//临时发函标识
    private String letterType;//函件类型 1代表 普通件  2代表密保件
	private String thStatus;//签收退回标识，1表示已经退回
	private String addressResult;//地址核查结果
	private String hjXsd;//户籍地址相似度
	private String jtXsd;//家庭地址相似度
	private String jhXsd;//家户地址相似度

	
	private transient int agePart;//年龄分类
	private transient String editAddressName;
	private transient String editAddressName2;
	private transient String editAddressName3;
	private transient String editAddressName4;
	private transient String editType;
	private transient String newAddress;
	private transient String newAddressResult;
	private transient String flag;
	private transient String sendAddress;//已发函地址
	private transient String selectAddress;//客户选择的发函地址
	
	public int getAgePart() {
		return AgeUtil.getAgePart(this.age);
	}

	public String getEditAddressName() {
		return AddressResultEnum.getNameByValue(this.editAddress);
	}

	public String getEditAddressName2() {
		return AddressResultEnum.getNameByValue(this.editAddress2);
	}

	public String getEditAddressName3() {
		return AddressResultEnum.getNameByValue(this.editAddress3);
	}

	public String getEditAddressName4() {
		return AddressResultEnum.getNameByValue(this.editAddress4);
	}
}
